/**
 * 
 */
package fr.gfi.agraf.service.mapper;

import java.util.ArrayList;
import java.util.List;

import org.springframework.util.CollectionUtils;

import fr.gfi.agraf.persistence.entity.Profil;
import fr.gfi.agraf.vue.bean.ProfilDTO;

/**
 * @author Zakaria
 *
 */
public class ProfilMapper {

	/**
	 * Constructeur
	 */
	private ProfilMapper() {
		// Empty constructeur
	}

	/**
	 * Convertit l'entity en dto
	 * 
	 * @param profil
	 * @return
	 */
	public static ProfilDTO entityToDTO(final Profil profil) {
		final ProfilDTO profilDTO = new ProfilDTO();
		profilDTO.setId(profil.getId());
		profilDTO.setLibelle(profil.getLibelle());
		profilDTO.setListeComposantDTO(ComposantMapper.entityDroitToDTOList(profil.getSetDroits()));
		return profilDTO;
	}

	/**
	 * Convertit le dto en entity
	 * 
	 * @param profilDTO
	 * @return
	 */
	public static Profil dtoToEntity(final ProfilDTO profilDTO) {
		final Profil profil = new Profil();
		profil.setId(profilDTO.getId());
		profil.setLibelle(profilDTO.getLibelle());
		return profil;
	}

	/**
	 * Convertit l'entity en dto list
	 * 
	 * @param profilList
	 * @return
	 */
	public static List<ProfilDTO> entityToDTOList(final List<Profil> profilList) {
		final List<ProfilDTO> profilDTOList = new ArrayList<ProfilDTO>();
		if (!CollectionUtils.isEmpty(profilList)) {
			for (final Profil profil : profilList) {
				profilDTOList.add(entityToDTO(profil));
			}
		}
		return profilDTOList;

	}

	/**
	 * Convertit le dto en entity list
	 * 
	 * @param profilDTOList
	 * @return
	 */
	public static List<Profil> dtoToEntityList(final List<ProfilDTO> profilDTOList) {
		final List<Profil> profilList = new ArrayList<Profil>();
		if (!CollectionUtils.isEmpty(profilDTOList)) {
			for (final ProfilDTO profilDTO : profilDTOList) {
				profilList.add(dtoToEntity(profilDTO));
			}
		}
		return profilList;
	}
}
